import { IsString, IsNotEmpty, MinLength, MaxLength } from 'class-validator'
import { ApiProperty } from '@nestjs/swagger'

export class CreateUserDto {
  @ApiProperty({
    description: '用户昵称',
    uniqueItems: true,
    example: 'admin',
  })
  @IsString({ message: '昵称不是有效的数据' })
  @IsNotEmpty({ message: '昵称不能为空' })
  @MinLength(2, { message: '昵称至少需要两位' })
  readonly nickname: string

  @ApiProperty({
    description: '用户名',
    uniqueItems: true,
    example: 'admin',
  })
  @IsString({ message: '不是有效的数据' })
  @IsNotEmpty({ message: '用户名不能为空' })
  @MinLength(3, { message: '用户名至少需要三位' })
  @MaxLength(60, { message: '用户名最长60' })
  readonly username: string

  @ApiProperty({
    description: '密码',
    uniqueItems: true,
    example: 'admin',
  })
  @IsString({ message: '密码不是有效的数据' })
  @IsNotEmpty({ message: '密码不能为空' })
  password: string

  @ApiProperty({
    description: '手机号',
    uniqueItems: true,
    example: '13811111111',
  })
  @IsString({ message: '手机号码不是有效的数据' })
  @IsNotEmpty({ message: '手机号码不能为空' })
  readonly mobile: string
}
